package com.ldz.redis.thread;

import com.ldz.redis.model.TaskBase;
import com.ldz.redis.utils.MyUtile;
import redis.clients.jedis.Jedis;

public class QueryThread implements Runnable{
    //redis 的 key
//    String taskId;
//
//    public QueryThread(String taskId){
//        this.taskId = taskId;
//    }

    @Override
    public void run() {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("39.106.41.215",16379);
        //设置密码
        jedis.auth("root");
        if(!"PONG".equals(jedis.ping()) || jedis == null){
            System.out.println("redis连接失败");
            return;
        }

        int i = 0;
        //循环取 如果没有则 sleep 5秒 继续执行 太快了操作不上来
        while(true) {
            System.out.println(i++);
            String task = jedis.lpop("LikeTask");

            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            if(task == null || "".equals(task)){
                continue;
            }
            //取出redis队列中的数据 反序列化
            TaskBase taskBase = (TaskBase) MyUtile.serializeToObject(task);
            //执行操作
            try {
                taskBase.taskExc();
            } catch (Exception e){
                jedis.lpush("LikeTask",MyUtile.serialize(taskBase));
            }
        }
    }
}
